;(function($, window, document, undefined) {
	//日期配置
	var dateOption = {
		singleDatePicker: true, //是否显示单个日期选择器
		showDropdowns: true, //是否显示月份、年份下拉框
		dateLimit: {
			"days": 7
		},
//					timePicker: true, //是否显示时间（时分）选择器
		timePicker24Hour: true, //是否24小时制度
//					timePickerSeconds: true, //是否显示秒
		endDate: new Date(), //限制最小日期
		maxDate: new Date(), //限制最大日期
		locale: { //转化为中文配置
			format: "YYYY-MM-DD", //显示格式
			applyLabel: '确认',
			cancelLabel: '取消',
			fromLabel: '从',
			toLabel: '到',
			weekLabel: 'W',
			customRangeLabel: 'Custom Range',
			daysOfWeek: ["日", "一", "二", "三", "四", "五", "六"],
			monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
		}
	};
	
	//标准时间返回 y-m-d h:m:s格式
	function formatDateTime(date) {
		var y = date.getFullYear();
		var m = date.getMonth() + 1;
		m = m < 10 ? ('0' + m) : m;
		var d = date.getDate();
		d = d < 10 ? ('0' + d) : d;
		var h = date.getHours();
		h = h < 10 ? ('0' + h) : h;
		var minute = date.getMinutes();
		minute = minute < 10 ? ('0' + minute) : minute;
		var second = date.getSeconds();
		second = second < 10 ? ('0' + second) : second;
		return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
	};
	
	
	
	$.extend({
		//初始化dom引用
		initPage:function(){
			$.initJobList();//初始化职务信息
			$.datePicker();//时间日期选择器
			$.getStaffInfo();//获取教职工信息
			$.staffOptions();//实例化表单验证,创建和编辑
//			$.getGradeList();//获取年级列表
//			$.addGrade();//新增年级
//			$.delGrade();//删除年级
//			$.GradeListEvent();//监听年级列表change事件
//			$.addClass();//添加班级
//			$.delClass();//删除班级
//			$.getClass_groupList();//获取科组列表
//			$.addClass_group();//新增科组
//			$.delClass_group();//删除科组
			
		},
		//时间日期选择器
		datePicker:function(){
			//初始化日期
			$('#birth,#hire_at,#resign_at').daterangepicker(
				dateOption
			);
		},
		//获取教职工信息
		getStaffInfo:function(){
			//获取
			if(localStorage.getItem("optionType") == "edit") {
				//获取单例用户信息
				fnAjax.method_4(
					url_join("staff/show"),
					{staff_id:localStorage.getItem("nId")},
					"post",
					function(data){
						console.log(data);
						$("#username").val(data.data.username);
						$("#no").val(data.data.no);
						$("#birth").val(data.data.birth);
						$("#mobile").val(data.data.mobile);
						$("#email").val(data.data.email);
						$("#gender").val(data.data.gender);
						$("#job").val(data.data.job_id);
					}
				);
			}
		},
		//实例化表单验证,创建和编辑
		staffOptions:function(){
			
			//初始化表单验证
				$('#form')
					.bootstrapValidator({
						message: '这个值是无效的',
						feedbackIcons: {
							valid: 'glyphicon glyphicon-ok',
							invalid: 'glyphicon glyphicon-remove',
							validating: 'glyphicon glyphicon-refresh'
						},
						fields: {
							username:{
								validators: {
									notEmpty: {
										message: '教职工姓名是必需的，不能是空的'
									},
									stringLength: {
										min: 2,
										max: 20,
										message: '教职工姓名至少2个字符，最多20个字符'
									},
									regexp: {
										regexp: /^[\u4e00-\u9fa5],{0,}|[A-Za-z]+$/,
										message: '教职工姓名只能是汉字或者英文字母'
									},
								}
							},							
				            email: {
				                validators: {
				                	notEmpty: {
										message: '邮箱地址是必需的，不能是空的'
									},
				                    emailAddress: {
				                        message: '输入不是有效的电子邮件地址'
				                    }
				                }
				            },
				            mobile:{
				            	message: '手机号是无效的',
								validators: {
									notEmpty: {
										message: '手机号是必需的，不能是空的'
									},									
									regexp: {
										regexp: /^[1][3,4,5,7,8][0-9]{9}$/,
										message: '请输入正确的手机号格式'
									},
									
								}
				            },
				            no:{
				            	message: '工号是无效的',
								validators: {
									notEmpty: {
										message: '工号是必需的，不能是空的'
									},									
									regexp: {
										regexp: /^[0-9]*$/,
										message: '请输入正确工号格式'
									},
									
								}
				            }
				            
						}
					})
					.on('success.form.bv', function(e) {
						// 阻止表单提交
						e.preventDefault();
						//添加
						if(localStorage.getItem("optionType") == "add") {
							// 获得表单实例
							var $form = $(e.target);
							console.log(
								$.serializeToObj($("form").serialize())
							);
							fnAjax.method_4(
								url_join("staff/create"),
//								$.serializeToObj($form.serialize()),	
								$.serializeToObj($("form").serialize()),
								"post",
								function(data) {
									console.log(data);
									layer.msg("操作成功", {
										time: 1500
									}, function() {
										parent.location.reload();
									});
								}
							);
						}
						//更新
						else {
							$('#form').append($('<input type="hidden" value="' + localStorage.getItem("nId") + '" name="staff_id"/>'));
							var $form = $(e.target);
							console.log(
								$.serializeToObj($("form").serialize())
							);
							fnAjax.method_4(
								url_join("staff/update"),
								$.serializeToObj($form.serialize()),
								"post",
								function(data) {
									console.log(data);
									layer.msg("操作成功", {
										time: 1500
									}, function() {
										parent.location.reload();
									});
								}
							);
						}

					});
				// 手动验证表单
				$('.btn-save').click(function() {
					$('#form').bootstrapValidator('validate');
				});
		},
		/*
		 返回列表，渲染为下拉菜单
		 @param aData {array} 列表数据
		 @param container {object} 下拉菜单select元素对象界节点  jq
		 * */
		getSelectList:function(aData,container){
			container.find("option").remove();
			$.each(aData, function(i,v) {
				var sOption = '<option value="'+ v.id +'">'+ v.name +'</option>';
				container.append($(sOption));
			});
		},
		//获取年级列表
		getGradeList:function(){
			fnAjax.method_4(
				url_join("grade/list"),
				{},
				"post",
				function(data) {
					console.log(data);
					$.getSelectList(data.data,$("#grade"));
					setTimeout(function(){
						$.getClassList();
					},300);
				}
			);
		},
		//监听年级列表change事件
		GradeListEvent:function(){
			$("#grade").on("change",function(){
				$.getClassList();
			});
		},
		//新增年级
		addGrade:function(){
			$(".btn-add-grade").on("click",function(){
				layer.prompt({
					formType: 0,
					value: '',
					title: '请输入要添加的年级名称，如：高一'
				}, function(value, index, elem) {
					fnAjax.method_4(
						url_join("grade/create"),
						{name:value},
						"post",
						function(data) {
							console.log(data);
							layer.msg("操作成功", {
								time: 1500
							}, function() {
								//重新加载年级
								$.getGradeList();
							});
						}
					);
				});
			});
		},
		//删除年级
		delGrade:function(){
			$(".btn-del-grade").on("click",function(){
				fnAjax.method_4(
					url_join("grade/delete"),
					{gid:$("#grade").val()},
					"post",
					function(data) {
						console.log(data);
						layer.msg("操作成功", {
							time: 1500
						}, function() {
							//重新加载年级
							$.getGradeList();
//							$("#grade").find("option:selected").remove();
						});
					}
				);
			});
		},
		//获取班级列表
		getClassList:function(){
			fnAjax.method_4(
				url_join("class/list"),
				{grade_id:$("#grade").val()},
				"post",
				function(data) {
					console.log(data);
					$.getSelectList(data.data,$("#class"));
				}
			);
		},
		//新增班级
		addClass:function(){
			$(".btn-add-class").on("click",function(){
				layer.prompt({
					formType: 0,
					value: '',
					title: '请输入要添加的班级名称，如：1'
				}, function(value, index, elem) {
					fnAjax.method_4(
						url_join("class/create"),
						{
							name:value,
							grade_id:$("#grade").val()
						},
						"post",
						function(data) {
							console.log(data);
							layer.msg("操作成功", {
								time: 1500
							}, function() {
								//重新加载班级
								$.getGradeList();
							});
						}
					);
				});
			});
		},
		//删除班级
		delClass:function(){
			$(".btn-del-class").on("click",function(){
				fnAjax.method_4(
					url_join("class/delete"),
					{cid:$("#class").val()},
					"post",
					function(data) {
						console.log(data);
						layer.msg("操作成功", {
							time: 1500
						}, function() {
							//重新加载班级
							$.getClassList();
//							$("#class").find("option:selected").remove();
						});
					}
				);
			});
		},
		//获取科组列表
		getClass_groupList:function(){
			fnAjax.method_4(
				url_join("class-group/list"),
				{},
				"post",
				function(data) {
					console.log(data);
					$.getSelectList(data.data,$("#class-group"));
				}
			);
		},
		//新增科组
		addClass_group:function(){
			$(".btn-add-class-group").on("click",function(){
				layer.prompt({
					formType: 0,
					value: '',
					title: '请输入要添加的科组名称，如：语文'
				}, function(value, index, elem) {
					fnAjax.method_4(
						url_join("class-group/create"),
						{
							name:value
						},
						"post",
						function(data) {
							console.log(data);
							layer.msg("操作成功", {
								time: 1500
							}, function() {
								//重新加载科组
								$.getClass_groupList();
							});
						}
					);
				});
			});
		},
		//删除科组
		delClass_group:function(){
			$(".btn-del-class-group").on("click",function(){
				fnAjax.method_4(
					url_join("class-group/delete"),
					{cg_id:$("#class-group").val()},
					"post",
					function(data) {
						console.log(data);
						layer.msg("操作成功", {
							time: 1500
						}, function() {
							//重新加载科组
							$.getClass_groupList();
//							$("#class-group").find("option:selected").remove();
						});
					}
				);
			});
		},
		//初始化职务信息
		initJobList:function(){
			//获取
			fnAjax.method_4(
				url_join("job/list"),
				{},
				"post",
				function(data) {
					console.log(data);				
					$.getSelectList(data.data,$("#job"));
				}
			);
		}
	});
})(jQuery, window, document);